<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>熔断机制设置 | ElasticSearch 7.7 权威指南中文版</title>
	<meta name="keywords" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <meta name="description" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
	<script>
	var _link = 'circuit-breaker.html';
    </script>
</head>
<body>
<div class="main-container">
    <section id="content">
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.7/circuit-breaker.html" rel="nofollow" target="_blank">https://www.elastic.co/guide/en/elasticsearch/reference/7.7/circuit-breaker.html</a>, 原文档版权归 www.elastic.co 所有<br/>本地英文版地址: <a href="../en/circuit-breaker.html" rel="nofollow" target="_blank">../en/circuit-breaker.html</a></div>
                        <!-- start body -->
                  <div class="page_header">
<strong>重要</strong>: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" rel="nofollow">当前版本文档</a>。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch 权威指南 [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="setup.html">安装和设置</a></span>
»
<span class="breadcrumb-link"><a href="settings.html">配置 Elasticsearch</a></span>
»
<span class="breadcrumb-node">熔断机制设置</span>
</div>
<div class="navheader">
<span class="prev">
<a href="auditing-settings.html">« 审计安全设置</a>
</span>
<span class="next">
<a href="modules-cluster.html">集群级分片分配和路由设置 »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="circuit-breaker"></a>
熔断机制设置 （Circuit breaker settings）
</h2>
</div></div></div>
<p>
ElasticSearch包含多个 熔断器(circuit breaker)，用于防止操作引起的内存不足错误(OutOfMemoryError)。

每个熔断器都指定了它可以使用多少内存的限制。

此外，还有一个父级熔断器，它指定所有断路器可以使用的内存总量。
</p>
<p>
除非另有说明，否则可以使用 <a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">集群更新设置</a> API 在运行中的集群上动态更新这些设置。
</p>
<h4>
<a id="parent-circuit-breaker"></a>
父级熔断器 (Parent circuit breaker)
</h4>
<p>
父级熔断器可以通过以下设置进行配置：
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">indices.breaker.total.use_real_memory</code>
</span>
</dt>
<dd>
<em>静态(Static)</em>设置，决定父级熔断器应考虑实际内存使用(<code class="literal">true</code>)还是仅考虑子熔断器预留的数量(<code class="literal">false</code>)。默认为 <code class="literal">true</code>。
</dd>
<dt>
<span class="term">
<code class="literal">indices.breaker.total.limit</code>
</span>
</dt>
<dd>
父级熔断器总体的起始限制。

当<code class="literal">indices.breaker.total.use_real_memory</code>设置为 <code class="literal">false</code> 时，默认为 JVM 堆的70%；

设置为 <code class="literal">true</code> 时， 默认为 JVM 堆的 95%。
</dd>
</dl>
</div>
<h4>
<a id="fielddata-circuit-breaker"></a>
字段数据熔断器 (Field data circuit breaker)
</h4>
<p>
字段数据熔断器允许 Elasticsearch 预估一个字段加载到内存中需要的内存大小。

然后，它可以通过抛出异常来阻止字段数据加载。

默认情况下，这个限制被配置为 JVM 堆最大大小的 40%。

可以使用以下参数来配置：
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">indices.breaker.fielddata.limit</code>
</span>
</dt>
<dd>
字段数据熔断器的限制，默认为 JVM 堆的40%
</dd>
<dt>
<span class="term">
<code class="literal">indices.breaker.fielddata.overhead</code>
</span>
</dt>
<dd>
一个常数，所有字段数据预估值乘以该常数以确定最终估计值。默认为 1.03
</dd>
</dl>
</div>
<h4>
<a id="request-circuit-breaker"></a>
请求熔断器 (Request circuit breaker)
</h4>
<p>
请求熔断器允许 Elasticsearch 防止每个请求的数据结构(例如，请求期间用于聚合计算的内存)超过一定的内存量。
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">indices.breaker.request.limit</code>
</span>
</dt>
<dd>
请求熔断器的限制，默认为 JVM 堆的60%
</dd>
<dt>
<span class="term">
<code class="literal">indices.breaker.request.overhead</code>
</span>
</dt>
<dd>
一个常数，所有请求的预估值都要乘以这个常数才能确定最终的估计值。默认为 1
</dd>
</dl>
</div>
<h4>
<a id="in-flight-circuit-breaker"></a>
请求队列熔断器 (In flight requests circuit breaker)
</h4>
<p>
<span style="color:#666; font-size:80%;">译者注: In flight requests, 是 client 的请求队列, 包括正在发送的请求和已经发送的但还没有接收到response的请求</span><br/>

请求队列熔断器允许 Elasticsearch 限制 传输 或 HTTP 级别上所有当前活动的传入请求的内存使用，使其不超过该节点的一定的内存量。

内存使用量基于请求自身的内容的长度。

该熔断器还认为，内存不仅需要表示原始请求，而且也是一个反映默认开销的结构化对象。
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">network.breaker.inflight_requests.limit</code>
</span>
</dt>
<dd>
请求队列的限制，默认为 JVM 堆的100%。

这异味着它受到为父级熔断器配置的限制的约束。
</dd>
<dt>
<span class="term">
<code class="literal">network.breaker.inflight_requests.overhead</code>
</span>
</dt>
<dd>
一个常数，所有请求队列预估值都要乘以这个常数才能确定最终的预估值。默认为 2。
</dd>
</dl>
</div>
<h4>
<a id="accounting-circuit-breaker"></a>
核算请求熔断器 (Accounting requests circuit breaker)
</h4>
<p>
核算请求熔断器允许 Elasticsearch 限制保存在内存中的东西的内存使用，这些东西在请求完成时不会被释放。

这包括像 Lucene 段内存这样的东西。
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">indices.breaker.accounting.limit</code>
</span>
</dt>
<dd>
核算请求的限制，默认为 JVM 堆的100%。这异味着它受到为父级熔断器配置的限制的约束。
</dd>
<dt>
<span class="term">
<code class="literal">indices.breaker.accounting.overhead</code>
</span>
</dt>
<dd>
一个常数，所有核算预估值都要乘以这个常数来确定最终的预估值。默认为 1
</dd>
</dl>
</div>
<h4>
<a id="script-compilation-circuit-breaker"></a>
脚本编译熔断器 (Script compilation circuit breaker)
</h4>
<p>
与以前的基于内存的熔断器略有不同，脚本编译熔断器限制了一段时间内的内联脚本编译数量。
</p>
<p>
更多信息请参考文档 <a class="xref" href="modules-scripting-using.html" title="How to use scripts">脚本(scripting)</a> 的 "首选参数 (prefer-parameters)" 部分。
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">script.max_compilations_rate</code>
</span>
</dt>
<dd>
在一定时间间隔内允许编译的唯一动态脚本的数量限制。默认为 75 / 5m，即每 5 分钟 75 个。
</dd>
</dl>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="auditing-settings.html">« 审计安全设置</a>
</span>
<span class="next">
<a href="modules-cluster.html">集群级分片分配和路由设置 »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>